package com.example.studentmanager.mapper;

import com.example.studentmanager.model.Administrator;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.sql.SQLException;
import java.util.List;

@Mapper
@Component
public interface AdministratorMapper {
    /**
     * 将管理员对象添加到数据表adminstrator中
     *
     * @param admin 管理员对象
     * @return 添加成功返回1，添加失败返回0
     * @throws SQLException
     */

    int addAdministrator(Administrator admin) throws SQLException;

    /**
     * 根据管理员的用户名，删除表adminstrator中对应的记录
     *
     * @param administrator 管理员的用户名
     * @return 删除成功返回1，没有删除返回0
     * @throws SQLException
     */
    int deleteAdministrator(Administrator administrator) throws SQLException;

    /**
     * 用Adminstrator对象更新表adminstrator中对应的记录
     *
     * @param admin 管理员对象
     * @return 更新成功返回1，没有更新返回0
     * @throws SQLException
     */
    int updateAdmin(Administrator admin) throws SQLException;

    /**
     * 根据给定的用户名、口令进行模糊查询所有符合条件的管理员
     *
     * @return 返回所有符合查询条件的管理员，没有找到则返回长度为0的空列表
     * @throws SQLException
     */
    List<Administrator> search(String id, String password, String name) throws SQLException;

    /**
     * 根据学号，查询管理员
     *
     * @param username 用户username，登录用户名
     * @return 找到则返回1个管理员对象，没找到返回null
     * @throws SQLException
     */
    Administrator selectAdminByUsername(String username) throws SQLException;

    boolean login(String id, String password) throws SQLException;


    /**
     * 分页查询
     * @param pageNum 页数
     * @return  List<Admistor> 返回admistor类型的list列表
     *
     */

    List<Administrator> findAdminByPages(int pageNum);

    List<Administrator> searchAllAdmin();


    List<Administrator> blurSelectAdmin(String  str);


}
